The statements in this section merely provide background information related to the present disclosure and may not constitute prior art.
Smartphones are presently gaining tremendously in popularity, in part for their ability to provide a plethora of diverse applications. One such application is streaming music over a cellular network to the smartphone. This application can also be used when the user is traveling in a motor vehicle such as an automobile or truck. Often the vehicle will have a Bluetooth connection system by which a wireless connection can be made between the vehicle's audio system and the user's smartphone. The smartphone can wirelessly stream audio content that it receives via a cellular network to the user's vehicle audio system, which enables the audio content to be played back over the vehicle's audio system. If a WiFi signal is available, then the audio content could be streamed in to the smartphone over a WiFi link. Likewise, even a computing tablet, laptop or other form of electronic device could be used to receive streamed audio content in the vehicle, but for the purpose of this discussion it will be assumed that the user's electronic device is a smartphone.
In the above example, it would be highly desirable to be able to control the various functions (e.g., “Play”, “Tag”, “Search”) that are often provided with such applications from the vehicle's audio system controls. However, since various vehicle audio systems have differing capabilities as far as controls and the user/machine interface that they employ, this raises significant challenges. In other words, heretofore, a specific application programming interface (“API”) has been required to interface a specific type of device (e.g., a specific manufacturer's vehicle audio system), having specific control/display capabilities, with the controls recognized by an application running on a user's smartphone. For example, a specific make of vehicle audio system having a simple seven segment LCD display may not have nearly the wide range of functionality that a system may have that implements a touch screen radio HMI (Human/Machine Interface). And a system that simply has a small plurality of physical user buttons may have even less functionality than the seven segment LCD display mentioned above. In each of these examples, a different API would need to be employed that accommodates, and is tailored to, the functionality of the user's device. So the challenge becomes how to enable a number of diverse devices, having differing functionalities and different types of user interfaces, to control a given application running on the user's smartphone, through the use of a single API. Conversely, the other challenge is having a plethora of smartphone applications with highly variable functionalities to be remotely controlled by said devices through the same single point of control, the API.